package com.ls.pattern.factory.abs.pay.common;

/**
 * 一个Factory的实现为一个产品族
 * IPay，IRefund，IBalance属于3个不同的产品等级结构
 * <p>
 * 产品等级结构：代表了产品的类型，如Alipay中的pay是一种产品类型，refund是另一种产品类型
 * 产品族：多个产品的类型合并在一起叫做产品族，如Alipay中的pay，refund，balance共同组成了产品族
 * <p>
 * 此处的IPaymentFactory为抽象工厂，即创建工厂的工厂，每个子工厂属于一个产品族，子工厂中的每个产品类型就是产品等级结构。
 *
 * @author 挥之以墨
 */
public interface IPaymentFactory {

    default void init() {
        System.out.println("初始化数据");
    }

    IPay createPay();

    IRefund createRefund();

    IBalance createBalance();

}
